package Leetcode第二期;

/**
 * @author : K k
 * @date : 10:10 2020/10/12
 */
public class 二叉搜索树的最小绝对差_530 {
    int res=Integer.MAX_VALUE;
    int pre=-1;
    public int getMinimumDifference(TreeNode root) {
        findMinusA(root);
        return res;
    }

    //任意两点 中序遍历
    private void findMinusA(TreeNode root) {
        if (root==null)return;
        findMinusA(root.left);
        if (pre==-1){
            pre=root.val;
        }else {
            res=Math.min(res,root.val-pre);
            pre=root.val;
        }
        findMinusA(root.right);
    }

    //逆中序遍历
    private void findMinus(TreeNode root,TreeNode node) {
        if(node==null){
            return;
        }
        findMinus(node,node.right);
        if (root!=node) {
            //node节点的值比root的大
            res = Math.min(res,Math.abs(node.val-root.val));
        }
        findMinus(node,node.left);
    }

    public static void main(String[] args) {

    }
}
